home *** CD-ROM | disk | FTP | other *** search
/ Die Ultimative Software-P…i Collection 1996 & 1997 / Die Ultimative Software-Pakete CD-ROM fur Atari Collection 1996 & 1997.iso / p / pov / povlisti.ngs / truchet2.pov < prev    next >
Encoding:
Text File  |  1992-03-08  |  3.7 KB  |  142 lines

  1. // Persistence of Vision Raytracer Version 1.0
  2. #include "colors.inc"
  3. #include "shapes.inc"
  4. #include "textures.inc"
  5.  
  6. camera {
  7.     location <0 0 -15>
  8.     direction <0 0 1>
  9.     up  <0 1 0>
  10.     right <1.33333 0 0>
  11.     look_at <0 0 0>
  12. }
  13.  
  14.  
  15. object {
  16.    light_source { <5 100 -250>
  17.    colour red 0.85 green 0.85 blue 0.85
  18.     }
  19. }
  20. object {
  21.    light_source { <5 -100 -25>
  22.    colour red 0.1 green 0.1 blue 0.1
  23.     }
  24. }
  25.  
  26.  
  27. #declare VeryDarkWood1 = color red 0.30 green 0.15 blue 0.09
  28. #declare DarkWood1 =  color red 0.60 green 0.30 blue 0.18
  29. #declare Wooden = texture {
  30.         wood
  31.         turbulence 0.04
  32.         octaves 3
  33.         scale <0.2 0.2 1>
  34.         colour_map {
  35.             [0.00 0.10 color DarkWood1 color DarkWood1]
  36.             [0.10 0.90 color DarkWood1 color VeryDarkWood1]
  37.             [0.90 1.01  color VeryDarkWood1  color VeryDarkWood1 ]
  38.          }
  39.         ambient 0.2
  40.         diffuse 0.8
  41. }
  42.  
  43. //  Outer radius: 1.25  Inner radius: 0.75
  44. #declare Torus = quartic {
  45.    <    1.000000 0.000000 0.000000 0.000000 2.000000
  46.         0.000000 0.000000 2.000000 0.000000 -2.125000
  47.         0.000000 0.000000 0.000000 0.000000 0.000000
  48.         0.000000 0.000000 0.000000 0.000000 0.000000
  49.         1.000000 0.000000 0.000000 2.000000 0.000000
  50.         1.875000 0.000000 0.000000 0.000000 0.000000
  51.         1.000000 0.000000 -2.125000 0.000000 0.878906 >
  52.  }/* end_quartic */
  53.  
  54. #declare Quarter_Torus = object {
  55.   quartic { Torus rotate <90 0 0>  }
  56.   clipped_by {
  57.       plane { <-1 0 0> 0  }
  58.       plane { <0  1 0> 0  }
  59.    }
  60.   color Red
  61.   texture {
  62.       bumps 0.35
  63.       scale <0.15 0.15 0.15>
  64.       color red 0.89 green 0.47 blue 0.20
  65.       ambient 0.2
  66.       diffuse 0.8
  67.       reflection 0.15
  68.       brilliance 8.0
  69.       specular 1
  70.       roughness 0.001
  71.    }
  72. }
  73.  
  74. #declare Tile = composite {
  75.     object { Quarter_Torus translate <-1 1 0>  }/* end_object */
  76.     object { Quarter_Torus rotate <0 0 180> translate <1 -1 0>  }/* end_object */
  77.     bounded_by {
  78.         sphere { <0 0 0> 1.77  }
  79.      }
  80. }
  81.  
  82. #declare EvenTile = composite {
  83.     composite { Tile  }
  84. }
  85.  
  86. #declare OddTile = composite {
  87.     composite { Tile  }
  88.     rotate <0 0 90>
  89. }
  90.  
  91. #include "tile.inc"
  92.  
  93.  
  94. #declare XFramePiece1 = object { box { UnitBox scale <6.5 0.5 0.5> }
  95.     texture { Wooden rotate <0 -85 0> translate <-3 0 0> }
  96. }
  97. #declare XFramePiece2 = object { box { UnitBox scale <6.5 0.5 0.5> }
  98.     texture { Wooden  rotate <0 90 0> translate <-2.5 0 0> }
  99. }
  100.  
  101. #declare YFramePiece1 = object { box { UnitBox scale <0.5 6.5 0.5> }
  102.     texture { Wooden  rotate <0 0 0> translate <85 0 1> }
  103. }
  104. #declare YFramePiece2 = object { box { UnitBox scale <0.5 6.5 0.5> }
  105.     texture { Wooden  rotate <0 5 0> translate <87 0 -1>}
  106. }
  107.  
  108. #declare Rod = object {
  109.     intersection {Z_Disk scale <0.25 0.25 5> }
  110.     texture { Chrome_Texture
  111.         gradient <0 0 1>                        // threads
  112.         color_map {
  113.             [0.0 0.5 color DimGray color LightGray ]
  114.             [0.5 1.0 color LightGray color DimGray ]
  115.         }
  116.         scale <1 1 0.1>
  117.         rotate <0 1 0>                          // pitch the threads a bit
  118.     }
  119. }
  120.  
  121. #declare Piece = composite {
  122.     composite { Tiles }
  123.     object {XFramePiece1 translate <0.5 -6.5 0> }
  124.     object {YFramePiece1 rotate <0 0 180> translate <-6.5 -0.5 0> }
  125.     object {XFramePiece2 rotate <0 0 180> translate <-0.5  6.5 0> }
  126.     object {YFramePiece2 translate < 6.5 0.5 0> }
  127. }
  128.  
  129.  
  130. composite {
  131.     composite {Piece}
  132.     composite {Piece rotate <0 0 180> translate <0 0 4> }
  133.     composite {Piece rotate <0 0 90> translate <0 0 -4> }
  134.  
  135.  
  136.     object { Rod  translate <-6.5  6.5 0> }
  137.     object { Rod  translate <-6.5 -6.5 0> }
  138.     object { Rod  translate < 6.5 -6.5 0> }
  139.     object { Rod  translate < 6.5  6.5 0> }
  140. }
  141.  
  142.